package es.eupt.amazingpi.model.juego;

import java.io.Serializable;
import java.util.Random;

public class Ficha implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private char letra;
	private String[][] tabla;
	private int[] puntuaciones;
	private String usuario;
	private int puntuacion;
	
	public Ficha(){}
	
	public Ficha(int numCategorias, char letra) {
		this.letra = letra;
		this.tabla = new String[2][numCategorias];
		this.puntuaciones = new int[numCategorias];
	}
	
	public Ficha(String[] categorias, char letra){
		this.letra = letra;
		this.tabla = new String[2][categorias.length];
		this.puntuaciones = new int[categorias.length];
		tabla[0] = categorias;
	}
	
	public Ficha(String[] categorias){
		letraAleatoria();
		this.tabla = new String[2][categorias.length];
		this.puntuaciones = new int[categorias.length];
		tabla[0] = categorias;
	}
	
	public char getLetra() {
		return letra;
	}
	public void setLetra(char letra) {
		this.letra = letra;
	}
	public String[][] getTabla() {
		return tabla;
	}
	public void setTabla(String[][] tabla) {
		this.tabla = tabla;
	}
	
	public void setCategoria(int indice, String categoria) {
		if (tabla!=null){
			tabla[0][indice] = categoria;
		}
	}
	
	public void setRespuesta(int indice, String respuesta) {
		if (tabla!=null){
			tabla[1][indice] = respuesta;
		}
	}
	
	public void setRespuesta(String categoria, String respuesta) {
		if (tabla!=null) {
			for (int i = 0; i < tabla[0].length; i++){
				if (tabla[0][i].equals(categoria)){
					tabla[1][i] = respuesta;
					break;
				}
			}
		}
	}
	
	public void setRespuestas(String[] respuestas) {
		if (tabla!=null && tabla[0].length == respuestas.length){
			tabla[1] = respuestas;
		}
	}
	
	public char letraAleatoria() {
		Random r = new Random();
		int randomInt = r.nextInt(26);
		char caracterA = 'A';
		char letra = (char) (caracterA + randomInt);
		System.out.println("Letra: " + letra);
		this.letra = letra;
		return letra;
		
	}
	
//	public static void main(String[] args){
//		Ficha ficha = new Ficha();
//		ficha.letraAleatoria();
//		ficha.letraAleatoria();
//		ficha.letraAleatoria();
//	}

	public int getTamanyo(){
		if (tabla!=null){
			return tabla[0].length;
		}
		return -1;
	}

	public int[] getPuntuaciones() {
		return puntuaciones;
	}

	public void setPuntuaciones(int[] puntuaciones) {
		this.puntuaciones = puntuaciones;
	}
	
	public void addPuntuacion (int indice, int puntuacion) {
		puntuaciones[indice] = puntuacion;
	}
	
	public int getPuntuacion (int indice){
		return puntuaciones[indice];
	}

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public int getPuntuacion() {
		return puntuacion;
	}

	public void setPuntuacion(int puntuacion) {
		this.puntuacion = puntuacion;
	}
	
}
